home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / UUCP / UUCon / Source / PrefController.m < prev    next >
Text File  |  1992-11-10  |  3KB  |  120 lines

  1. /*
  2.  
  3.   Ronin Consulting, Inc.
  4.     Copyright (C) 1992, Nicholas Christopher (nwc@gun.com)
  5.  
  6.     This library is free software; you can redistribute it and/or
  7.     modify it under the terms of the GNU Library General Public
  8.     License as published by the Free Software Foundation; either
  9.     version 2 of the License, or (at your option) any later version.
  10.  
  11.     This library is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.     Library General Public License for more details.
  15.  
  16.     You should have received a copy of the GNU Library General Public
  17.     License along with this library; if not, write to the Free
  18.     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. */
  21. #import <appkit/Application.h>
  22. #import <appkit/Window.h>
  23. #import <appkit/Cell.h>
  24. #import "Defaults.h"
  25. #import "PrefController.h"
  26.  
  27. static NXDefaultsVector myDefaults =
  28. {
  29. {"DefaultHost", ""},
  30. {"DebugPoll", "NO"},
  31. {"ShowLog", "NO"},
  32. {"ShowSysLog", "NO"},
  33. {"BaudRate", "1200"},
  34. {NULL}
  35. };
  36.  
  37.  
  38.  
  39. @implementation PrefController
  40.  
  41. - init
  42. {
  43.    [super init];
  44.    defaults = [Defaults new];
  45.    [defaults regDefaults: myDefaults];
  46.    return self;
  47. }
  48.  
  49. - makeKeyAndOrderFront:sender
  50. {
  51.    if(!window && ![NXApp loadNibSection: "Preferences.nib" owner: self])
  52.    {
  53.       return self;
  54.    }
  55.  
  56.    [self revert: self];
  57.    [window display];
  58.    [window makeKeyAndOrderFront: self];
  59.    return self;
  60. }
  61.  
  62. - revert: sender
  63. {
  64.  
  65.    if(*[defaults get: "DebugPoll"] == 'Y')
  66.        [debugPolling setState: YES];
  67.    else
  68.        [debugPolling setState: NO];
  69.  
  70.    if(*[defaults get: "ShowLog"] == 'Y')
  71.        [showLog setState: YES];
  72.    else
  73.        [showLog setState: NO];
  74.  
  75.    if(*[defaults get: "ShowSysLog"] == 'Y')
  76.        [showSysLog setState: YES];
  77.    else
  78.        [showSysLog setState: NO];
  79.  
  80.    [defaultHost setStringValue: [defaults get: "DefaultHost"]];
  81.    [baudRate setStringValue: [defaults get: "BaudRate"]];
  82.  
  83.    return self;
  84. }
  85.  
  86.  
  87. - ok:sender
  88. {
  89.    if([debugPolling state])
  90.        [defaults writeDB: "DebugPoll" as: "YES"];
  91.    else
  92.        [defaults writeDB: "DebugPoll" as: "NO"];
  93.  
  94.  
  95.    if([showLog state])
  96.        [defaults writeDB: "ShowLog" as: "YES"];
  97.    else
  98.        [defaults writeDB: "ShowLog" as: "NO"];
  99.  
  100.    if([showSysLog state])
  101.        [defaults writeDB: "ShowSysLog" as: "YES"];
  102.    else
  103.        [defaults writeDB: "ShowSysLog" as: "NO"];
  104.  
  105.    [defaults writeDB: "DefaultHost" as: [defaultHost stringValue]];
  106.    [defaults writeDB: "BaudRate" as: [baudRate stringValue]];
  107.  
  108.    [window performClose: self];
  109.    return self;
  110. }
  111.  
  112. - windowDidBecomeKey: sender
  113. {
  114.    [self revert: self];
  115.    return self;
  116. }
  117.  
  118.  
  119. @end
  120.